﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

////非递归形式
////void reverse_string(char* s)
////{
////	int left = 0;
////	int right = strlen(s)-1;
////
////	while (left< right)
////	{
////		char tmp = s[left];
////		s[left] = s[right];
////		s[right] = tmp;
////		left++;
////		right--;
////    }
////}
//
//int my_strlen(char *s)
//{
//	int count = 0;
//	while (*s != '\0')
//	{
//		count++;
//		s++;
//	}
//	return count;
//}
//
//
//void reverse_string(char* s)
//{
//	if ( *s == '\0')
//	{
//		return ;
//	}
//	int len = my_strlen(s);
//		char tmp = s[0];
//		s[0] = s[len - 1];
//		s[len - 1] = '\0';
//		if (my_strlen(s+1)>=2)
//		{
//			 reverse_string(s + 1);
//		}
//		s[len - 1] = tmp;
//}
//
//
//
////实现一个函数来交换两个整数的内容。
//int main()
//{
//
//	char arr[] = "abcdefg";
//	reverse_string(arr);
//	printf("%s\n",arr);
//	return 0;
//}


//int main()
//{
//	int a, b, c;
//	a = 5;
//	c = ++a;
//	b = ++c, c++, ++a, a++;
//	b += a++ + c;
//	printf("a = %d b = %d c = %d\n:", a, b, c);
//	return 0;
//}


//int main()
//{
//	int a = 3;
//	int b = 5;
//	a = a ^ b;
//	b = a ^ b;
//	a = a ^ b;
//
//	printf("%d %d",a ,b);
//
//	return 0;
//}


//int main()
//{
//	int flag = -1;
//	if (flag == 0)
//	{
//		printf("hehe\n");
//	}
//
//	if (!flag)
//	{
//		printf("hehe\n");
//	}
//	if (flag)
//	{
//		printf("haha\n");
//	}
//
//	return 0;
//}


//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//
//	int i = 0;
//	int count = 0;
//
//	while (i < 32)
//	{
//		
//		if (n < 0)
//		{
//			count++;
//		}
//		n = n << 1;
//		i++;
//
//	}
//	printf("%d\n",count);
//
//	return 0;
//}


//编程实现：两个int（32位）整数m和n的二进制表达中，有多少个位(bit)不同？
//
//输入例子 :
//
//1999 2299
//
//输出例子 : 7

//int main()
//{
//	int a = 0;
//	int b = 0;
//	int c = 0;
//	scanf("%d %d",&a,&b);
//
//	c = a ^ b;
//
//		int i = 0;
//	int count = 0;
//
//	while (i < 32)
//	{
//		
//		if (c < 0)
//		{
//			count++;
//		}
//		c = c << 1;
//		i++;
//
//	}
//
//	printf("%d\n",count);
//	return 0;
//}



//获取一个整数二进制序列中所有的偶数位和奇数位，分别打印出二进制序列


/*
思路：
1. 提取所有的奇数位，如果该位是1，输出1，是0则输出0
2. 以同样的方式提取偶数位置


 检测num中某一位是0还是1的方式：
   1. 将num向右移动i位
   2. 将移完位之后的结果与1按位与，如果：
      结果是0，则第i个比特位是0
      结果是非0，则第i个比特位是1
*/
//void Printbit(int num)
//{
//	for (int i = 31; i >= 1; i -= 2)
//	{
//		printf("%d ", (num >> i) & 1);
//	}
//	printf("\n");
//
//	for (int i = 30; i >= 0; i -= 2)
//	{
//		printf("%d ", (num >> i) & 1);
//	}
//	printf("\n");
//}
//int main()
//{
//
//	int n = 0;
//	scanf("%d",&n);
//
//	Printbit(n);
//
//	return 0;
//}

//逻辑操作符
//&& || ! - 计算结果是真，使用1表示

int main()
{
	int a = 3 || 0;
	printf("%d\n", a);

	return 0;
}